function formatTime(time) {
	if (typeof time !== 'number' || time < 0) {
		return time
	}

	var hour = parseInt(time / 3600)
	time = time % 3600
	var minute = parseInt(time / 60)
	time = time % 60
	var second = time

	return ([hour, minute, second]).map(function(n) {
		n = n.toString()
		return n[1] ? n : '0' + n
	}).join(':')
}

function formatLocation(longitude, latitude) {
	if (typeof longitude === 'string' && typeof latitude === 'string') {
		longitude = parseFloat(longitude)
		latitude = parseFloat(latitude)
	}

	longitude = longitude.toFixed(2)
	latitude = latitude.toFixed(2)

	return {
		longitude: longitude.toString().split('.'),
		latitude: latitude.toString().split('.')
	}
}
var dateUtils = {
	UNITS: {
		'年': 31557600000,
		'月': 2629800000,
		'天': 86400000,
		'小时': 3600000,
		'分钟': 60000,
		'秒': 1000
	},
	humanize: function(milliseconds) {
		var humanize = '';
		for (var key in this.UNITS) {
			if (milliseconds >= this.UNITS[key]) {
				humanize = Math.floor(milliseconds / this.UNITS[key]) + key + '前';
				break;
			}
		}
		return humanize || '刚刚';
	},
	format: function(dateStr) {
		var date = this.parse(dateStr)
		var diff = Date.now() - date.getTime();
		if (diff < this.UNITS['天']) {
			return this.humanize(diff);
		}
		var _format = function(number) {
			return (number < 10 ? ('0' + number) : number);
		};
		return date.getFullYear() + '/' + _format(date.getMonth() + 1) + '/' + _format(date.getDate()) + '-' +
			_format(date.getHours()) + ':' + _format(date.getMinutes());
	},
	parse: function(str) { //将"yyyy-mm-dd HH:MM:ss"格式的字符串，转化为一个Date对象
		var a = str.split(/[^0-9]/);
		return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
	}
};

export {
	formatTime,
	formatLocation,
	dateUtils
}


// utils/request.js
export function request(options) {
  // 请求前的过滤器
  options = beforeRequest(options);

  return new Promise((resolve, reject) => {
    uni.request({
      ...options,
      success: (response) => {
        // 请求成功的处理
        const result = afterRequest(response);
        resolve(result);
      },
      fail: (error) => {
        // 请求失败的处理
        reject(handleRequestError(error));
      }
    });
  });
}

// 请求前的过滤器
function beforeRequest(options) {
  //console.log("请求之前",options)
  if(options.data){
	  options.data.userid=uni.getStorageSync("userid")
  }
  // 在这里可以处理请求参数、添加请求头等
  options.header = {
    ...options.header,
    'token': getToken() // 可以在这里统一添加 Token
  };
  return options;
}

// 请求后的过滤器
function afterRequest(response) {
	//console.log("请求之后",response)
	if(response.data.message){
		if(response.data.message.includes('token') || response.data.message.includes('未登录')){
			uni.reLaunch({
				url: '/'
			});
		}
	}
  // 在这里统一处理响应数据
  if (response.statusCode === 200) {
	//console.log("接口调用返回",response)
	if(response.header.token){
		uni.setStorageSync("jwt",response.header.token)
	}
    return response.data;
  } else {
    // 错误处理
    throw new Error('请求失败');
  }
}

// 请求失败的处理
function handleRequestError(error) {
  console.error('请求失败：', error);
  uni.showToast({
    title: '请求失败',
    icon: 'none'
  });
  return Promise.reject(error);
}

// 获取 Token 的方法
function getToken() {
  // 这里可以从本地缓存中获取 token，或者从其他地方获取
  return uni.getStorageSync('jwt') || '';
}